package com.ruoyi.system.service;

import com.ruoyi.system.domain.ArchiveResult;
import com.ruoyi.system.domain.vo.ArchiveResultVo;
import com.ruoyi.system.domain.bo.ArchiveResultBo;
import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo;

import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.List;

/**
 * 归档任务执行日志Service接口
 *
 * @author ruoyi
 * @date 2024-12-06
 */
public interface IArchiveResultService {

    /**
     * 查询归档任务执行日志
     */
    ArchiveResultVo queryById(Long id);

    /**
     * 查询归档任务执行日志列表
     */
    TableDataInfo<ArchiveResultVo> queryPageList(ArchiveResultBo bo, PageQuery pageQuery);

    /**
     * 查询归档任务执行日志列表
     */
    List<ArchiveResultVo> queryList(ArchiveResultBo bo);

    /**
     * 修改归档任务执行日志
     */
    Boolean insertByBo(ArchiveResultBo bo);

    /**
     * 修改归档任务执行日志
     */
    Boolean updateByBo(ArchiveResultBo bo);

    /**
     * 校验并批量删除归档任务执行日志信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 查询目标表的成功备份记录
     *
     * @param taskName
     * @return
     */
    List<ArchiveResult> queryListForRecover(String taskName);

    void download(Long id, HttpServletResponse response) throws Exception;
}
